The present invention is related to application specific integrated circuits (ASICs), and in particular to improving the testability of structured ASICs using test point insertion techniques.
Integrated circuits (ICs) are typically made on a thin, circular silicon wafer, with each wafer holding hundreds of die. The transistors and wiring are made from many layers built on top of one another. Each successive layer has a pattern that is defined using a mask. The first several layers typically define the transistors and the last several layers typically define the metal wires between the transistors (i.e., the interconnect).
One type of ASIC is a cell-based ASIC. A cell-based ASIC uses “cells” or areas of the wafer to embed custom components. A cell-based ASIC typically uses predesigned logic cells (e.g., AND gates, OR gates, multiplexers, and flip-flops, for example). The cell-based ASIC is often built from rows of standard logic cells. As the functional requirements of a cell-based ASIC expand, the complexity of its design also typically increases. This, in turn, likely increases its design size. As a result, cell-based ASICs may use many metal layers and may need a large number of masks. The large number of masks needed for the ASIC typically results in increased costs associated with manufacturing these ASIC. Another major concern is the time needed to bring a chip to market (i.e., its time-to-market). Design turn-around time (TAT) is often a critical factor that governs time-to-market.
The use of field programmable gate array (FPGA) technology has attempted to solve several of these problems. A FPGA is an array of programmable logic cells that can implement combinational as well as sequential logic. FPGA mask costs are much less than cell-based ASIC mask costs. Further, the design TAT of FPGAs is typically less than the design TAT of cell-based ASICs. FPGA's, however, do not solve all of the shortcomings associated with cell-based ASICs. Specifically, in particular applications, power consumption and per chip cost of FPGAs are typically very high.
Structured ASICs (SAs) have emerged as a technology that solves many of the shortcomings of both FPGAs and cell-based ASICs. SAs consume less power than FPGAs and incur less NRE (non-recurring engineering) cost with shorter TAT compared to cell-based ASICs. SAs typically use a pre-defined array of macro cells organized in a 2-dimensial grid fashion. These pre-defined macro cells are normally realized using a limited number of metal or via layers (typically 2-3), which are not field-programmable. Verified clock trees, design-for-test (DFT) hardware and other generic cores such as serializer/deserializer (SerDes), memory, analog phase locked loops (APLL) and delay locked loops (DLL), are typically predefined and often do not need to be designed by users. Hence, the use of SAs often eliminates the design time involved in clock tree synthesis, testability related issues and the necessity of obtaining cores. Another advantage of using these pre-defined cells is that the physical design of these cells is fully verified for timing and signal integrity. This typically results in the total design cycle time of a SA being significantly shorter than that of a cell based ASIC.
Recent SA chips can accommodate designs comprising several million gates. The testing of a SA chip may or may not be performed during normal use of the chip.
Often, test points are used to test a circuit design. Test point insertion (TPI) typically involves inserting extra logic into a circuit such that internal signal lines in the circuit become better controllable and/or observable. The extra logic typically results in better testability of internal parts of the circuit, but often does not influence the functionality of the circuit in normal operation mode.
A goal of TPI is to select a number of signal lines in a combinational network as candidates for inserting observable points, so as to minimize the number of test vectors needed to detect all single stuck-at faults in the network. Stuck-at faults occur when a defect results in signal lines in the circuit being fixed at a value, i.e., fixed at logic 0 or fixed at logic 1. A test pattern for detecting a stuck-at fault at a signal line l has to activate the fault, i.e., the applied stimulus should result in a different value on l in the fault-free case compared to the faulty case, and it should propagate the fault-effect to an output.
TPI has become a popular design-for-test (DFT) technique to improve fault coverage for design using random pattern built-in self-test (BIST). Design-for-Test (DFT) hardware includes extra circuitry placed on the to-be-tested chip, but DFT hardware typically enables tests to be performed faster and/or with a higher fault coverage than testing the chip during its normal use. Fault coverage is usually given as:
      actual    ⁢                  ⁢    number    ⁢                  ⁢    of    ⁢                  ⁢    faults    ⁢                  ⁢    detected    ⁢                  ⁢    by    ⁢                  ⁢    a    ⁢                  ⁢    test        total    ⁢                  ⁢    number    ⁢                  ⁢    of    ⁢                  ⁢    faults    ⁢                  ⁢    in    ⁢                  ⁢    a    ⁢                  ⁢    circuit    ⁢                  ⁢    design  and may be referred to as the quality of a test. Further, a built-in-self-test (BIST) includes extra circuitry placed on the to-be-tested chip, to the extent that the complete test function can be performed on chip, without external tester support.
Achieving high fault coverage for large designs, such as SA designs, typically requires a large amount of CPU time. Since the TAT is a critical factor for SAs, long test generation time is undesirable. Further, the cost associated with a test increases as the length of the test generation time increases.
Therefore, there remains a need to test a structured ASIC (SA) in a more efficient and cost effective manner.